<?php
/*
* PHP Template created by Nicky
* 公共函数库
*/

class FN{
	
	/**
	* 打印调试信息
	* @param 被调试的数据 $obj
	* @param 是否结果执行 默认会结束执行 $IS_END
	* 
	* @return
	*/
	public static function _D($obj,$IS_END=true){
		echo '<pre>';
		if(is_array($obj)){
			print_r($obj);
		}elseif(is_string($obj)){
			echo $obj;
		}elseif(is_object($obj)){
			var_dump($obj);
		}elseif(empty($obj)){
			echo 'IS_NULL';
		}else{
			var_dump($obj);
		}
		echo '</pre>';
		if($IS_END){
			exit();
		}
	}
	
	/**
	* 返回Json字符串
	* @param 状态标志 默认为TRUE $status
	* @param 信息 $mes
	* @param 数据 $data 
	* @return
	*/
	public static function _Ajax_return($status=true,$mes='Done',$data=array()){
		exit(json_encode(array('s'=>$status,'m'=>$mes,'d'=>$data)));
	}
	
	/**
	* 记录日志文件
	* @param 被记录的数据 $data
	* @param 日志文件名称 默认为日期 $filename
	* @param 日志记录行的标记 $mark
	* 
	* @return
	*/
	public static function _log($data,$filename='',$mark=''){
		$logfile = Log_Path;
		if(!empty($filename)){
			$logfile .= $filename.'.log';
		}else{
			$logfile .= date('Y_m_d_H').'.log';
		}
		$file = fopen($logfile,'a+');
		if(is_string($data)){
			$dataStr = '【Sting】'.$data;
		}elseif(is_array($data)){
			$dataStr = '【Array】'.json_encode($data,JSON_UNESCAPED_UNICODE);
		}elseif(is_object($data)){
			$dataStr = '【Object】'.json_encode($this->_object_to_array($data));
		}else{
			$dataStr = '【Unknow Type】'.$data;
		}
		$dataStr = date('Ymd_His').$dataStr.'
';
		if(!empty($mark)){
			$dataStr = '【'.$mark.'】'.$dataStr;
		}else{
			$dataStr = '【----】'.$dataStr;
		}
		fwrite($file,$dataStr);
		fclose(); 
	}
	
	/**
	* 对象转化为Array
	* @param undefined $obj
	* 
	* @return
	*/
	public static function _object_to_array($obj){
	    $_array = is_object($obj) ? get_object_vars($obj) : $obj;
	    foreach ($_array as $key => $v) {
	        $v = (is_array($v) || is_object($v)) ? _object_to_array($v) : $v;
	        $array[$key] = $v;
	    }
	    return $array;
	}
}
?>